
using System;
using LastFMGenNHibernate.EN.LastFM;
using LastFMGen_LastFMWCF.DTO.LastFM;

namespace LastFMGen_LastFMWCF.AdaptersEN.LastFM
{
        public class CancionDTOENAdapter {
        public static CancionEN Convert (CancionDTO dto)
        {
                CancionEN newinstance = null;

                try
                {
                        if (dto != null) {
                                newinstance = new CancionEN ();



                                newinstance.Id = dto.Id;
                                newinstance.Nombre = dto.Nombre;
                                newinstance.Rating = dto.Rating;
                                newinstance.Reproducciones = dto.Reproducciones;
                                newinstance.Popular = dto.Popular;
                                if (dto.Album_oid != -1) {
                                        LastFMGenNHibernate.CAD.LastFM.IAlbumCAD albumCAD = new LastFMGenNHibernate.CAD.LastFM.AlbumCAD ();

                                        newinstance.Album = albumCAD.ReadOIDDefault (dto.Album_oid);
                                }
                                if (dto.Artista_oid != -1) {
                                        LastFMGenNHibernate.CAD.LastFM.IArtistaCAD artistaCAD = new LastFMGenNHibernate.CAD.LastFM.ArtistaCAD ();

                                        newinstance.Artista = artistaCAD.ReadOIDDefault (dto.Artista_oid);
                                }
                                if (dto.Comentario_oid != null) {
                                        LastFMGenNHibernate.CAD.LastFM.IComentarioCAD comentarioCAD = new LastFMGenNHibernate.CAD.LastFM.ComentarioCAD ();

                                        newinstance.Comentario = new System.Collections.Generic.List<LastFMGenNHibernate.EN.LastFM.ComentarioEN>();
                                        foreach (int entry in dto.Comentario_oid) {
                                                newinstance.Comentario.Add (comentarioCAD.ReadOIDDefault (entry));
                                        }
                                }
                                if (dto.UsuarioRegistrado_oid != -1) {
                                        LastFMGenNHibernate.CAD.LastFM.IUsuarioRegistradoCAD usuarioRegistradoCAD = new LastFMGenNHibernate.CAD.LastFM.UsuarioRegistradoCAD ();

                                        newinstance.UsuarioRegistrado = usuarioRegistradoCAD.ReadOIDDefault (dto.UsuarioRegistrado_oid);
                                }
                                if (dto.UsuarioRegistrado_0_oid != -1) {
                                        LastFMGenNHibernate.CAD.LastFM.IUsuarioRegistradoCAD usuarioRegistradoCAD = new LastFMGenNHibernate.CAD.LastFM.UsuarioRegistradoCAD ();

                                        newinstance.UsuarioRegistrado_0 = usuarioRegistradoCAD.ReadOIDDefault (dto.UsuarioRegistrado_0_oid);
                                }
                                newinstance.Etiqueta = dto.Etiqueta;
                        }
                }
                catch (Exception ex)
                {
                        throw ex;
                }
                return newinstance;
        }
        }
}
